The present application relates to software development and more specifically to systems, methods, and patterns for implementing enterprise software applications.
Many types of business logic are implemented by enterprise software applications. For example, CRM (Customer Relationship Management) applications often implement business logic to perform price quotations and order capture for customers. For the price quotation business logic, a pricing engine may be implemented to receive input data (e.g., product name or product ID) and to return output data that includes the price for each product in the input data. For the order capture business logic, an order capture engine and/or eligibility engine may be used to receive input data regarding a potential order (e.g., customer ID and product ID) and provide output data regarding the order capture or order eligibility.
The problem that is often faced by users of such systems is that these enterprise software systems do not come with a standard configuration that exactly meets the user's requirements. This means that the out-of-the-box performance of the system does not provide the most optimal, useful or effective configuration for the user. Given the complexity of these systems, it is normally very difficult, if not impossible, for most users to be able to configure the system to meet the user's requirements.
For at least the above reasons, there is a need for improved approaches to implement enterprise software systems and applications.